package com.dragon.modules.yuegou.query.park;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dragon.modules.yuegou.entity.park.HistoryEntity;
import com.dragon.modules.yuegou.enums.park.HistoryPayType;
import com.dragon.modules.yuegou.enums.park.HistoryStatus;
import com.dragon.modules.yuegou.mybatis.Condition;
import com.dragon.modules.yuegou.mybatis.Query;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
 * 历史停车信息表 动态查询条件
 * 
 * @author px
 * @date 2019-03-27 14:45:59
 * @version 2.0
 */
@JsonInclude(Include.NON_NULL)
public class HistoryQuery extends HistoryEntity implements Query<HistoryEntity> {

    /** 第三方ID查询条件 */
	@JsonUnwrapped(prefix = "thirdId")
	private Condition<String> thirdIdCondition;

    /** 商圈ID查询条件 */
	@JsonUnwrapped(prefix = "busdId")
	private Condition<String> busdIdCondition;

    /** 会员ID查询条件 */
	@JsonUnwrapped(prefix = "memberId")
	private Condition<String> memberIdCondition;

    /** 会员手机号查询条件 */
	@JsonUnwrapped(prefix = "memberMobile")
	private Condition<String> memberMobileCondition;

    /** 查询条件 */
	@JsonUnwrapped(prefix = "plateNumber")
	private Condition<String> plateNumberCondition;

    /** 停车场ID查询条件 */
	@JsonUnwrapped(prefix = "parkingId")
	private Condition<String> parkingIdCondition;

    /** 第三方系统停车场编号查询条件 */
	@JsonUnwrapped(prefix = "parkingThirdNo")
	private Condition<String> parkingThirdNoCondition;

    /** 停车场名称查询条件 */
	@JsonUnwrapped(prefix = "parkingName")
	private Condition<String> parkingNameCondition;

    /** 用户类型 76:长租用户；77：临停用户查询条件 */
	@JsonUnwrapped(prefix = "userType")
	private Condition<String> userTypeCondition;

    /** 入场时间查询条件 */
	@JsonUnwrapped(prefix = "entranceTime")
	private Condition<LocalDateTime> entranceTimeCondition;

    /** 出场时间查询条件 */
	@JsonUnwrapped(prefix = "exitTime")
	private Condition<LocalDateTime> exitTimeCondition;

    /** 停留时间(以秒为单位计算)查询条件 */
	@JsonUnwrapped(prefix = "stayedTime")
	private Condition<Long> stayedTimeCondition;

    /** 总停车费查询条件 */
	@JsonUnwrapped(prefix = "parkingFee")
	private Condition<BigDecimal> parkingFeeCondition;

    /** 已缴停车费查询条件 */
	@JsonUnwrapped(prefix = "paidFee")
	private Condition<BigDecimal> paidFeeCondition;

    /** 线上已缴费用查询条件 */
	@JsonUnwrapped(prefix = "paidOnlineFee")
	private Condition<BigDecimal> paidOnlineFeeCondition;

    /** 线上缴费次数查询条件 */
	@JsonUnwrapped(prefix = "paidTotal")
	private Condition<Integer> paidTotalCondition;

    /** 线下缴费费用查询条件 */
	@JsonUnwrapped(prefix = "paidOfflineFee")
	private Condition<BigDecimal> paidOfflineFeeCondition;

    /** 长租车位ID查询条件 */
	@JsonUnwrapped(prefix = "fixParkingId")
	private Condition<String> fixParkingIdCondition;

    /** 长租剩余天数 如果是临停用户此字段为空查询条件 */
	@JsonUnwrapped(prefix = "remainingDays")
	private Condition<String> remainingDaysCondition;

    /** 停车券ID查询条件 */
	@JsonUnwrapped(prefix = "couponId")
	private Condition<String> couponIdCondition;

    /** 停车券名字查询条件 */
	@JsonUnwrapped(prefix = "couponName")
	private Condition<String> couponNameCondition;

    /** 停车券抵扣金额查询条件 */
	@JsonUnwrapped(prefix = "couponDiscountFee")
	private Condition<BigDecimal> couponDiscountFeeCondition;

    /** [枚举]车牌状态：0-已出场-OUTSIDE、1-已入场-INSIDE、2-待离场-WAITOUT查询条件 */
	@JsonUnwrapped(prefix = "status")
	private Condition<HistoryStatus> statusCondition;

    /** 创建时间查询条件 */
	@JsonUnwrapped(prefix = "createdTime")
	private Condition<LocalDateTime> createdTimeCondition;

    /** 更新时间查询条件 */
	@JsonUnwrapped(prefix = "modifiedTime")
	private Condition<LocalDateTime> modifiedTimeCondition;

    /** 积分抵扣金额查询条件 */
	@JsonUnwrapped(prefix = "integralFee")
	private Condition<BigDecimal> integralFeeCondition;

    /** 抵扣积分查询条件 */
	@JsonUnwrapped(prefix = "integral")
	private Condition<Integer> integralCondition;

    /** [枚举]支付类型：1-平台-PLATFORM、2-支付宝-ALIPAY、3-微信-WECHAT查询条件 */
	@JsonUnwrapped(prefix = "payType")
	private Condition<HistoryPayType> payTypeCondition;

	/**
	 * 构造一个查询条件对象
	 */
	public HistoryQuery() {
		super();
	}

	/**
	 * 依据实体对象构造一个查询条件对象
	 * 
	 * @param entity 实体对象
	 */
	public HistoryQuery(HistoryEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它查询条件对象的信息构造一个查询条件对象
	 * 
	 * @param other 查询条件对象
	 */
	public HistoryQuery(HistoryQuery other) {
		super(other);
		if (other.thirdIdCondition != null) {
			this.thirdIdCondition = other.thirdIdCondition.copy();
		}
		if (other.busdIdCondition != null) {
			this.busdIdCondition = other.busdIdCondition.copy();
		}
		if (other.memberIdCondition != null) {
			this.memberIdCondition = other.memberIdCondition.copy();
		}
		if (other.memberMobileCondition != null) {
			this.memberMobileCondition = other.memberMobileCondition.copy();
		}
		if (other.plateNumberCondition != null) {
			this.plateNumberCondition = other.plateNumberCondition.copy();
		}
		if (other.parkingIdCondition != null) {
			this.parkingIdCondition = other.parkingIdCondition.copy();
		}
		if (other.parkingThirdNoCondition != null) {
			this.parkingThirdNoCondition = other.parkingThirdNoCondition.copy();
		}
		if (other.parkingNameCondition != null) {
			this.parkingNameCondition = other.parkingNameCondition.copy();
		}
		if (other.userTypeCondition != null) {
			this.userTypeCondition = other.userTypeCondition.copy();
		}
		if (other.entranceTimeCondition != null) {
			this.entranceTimeCondition = other.entranceTimeCondition.copy();
		}
		if (other.exitTimeCondition != null) {
			this.exitTimeCondition = other.exitTimeCondition.copy();
		}
		if (other.stayedTimeCondition != null) {
			this.stayedTimeCondition = other.stayedTimeCondition.copy();
		}
		if (other.parkingFeeCondition != null) {
			this.parkingFeeCondition = other.parkingFeeCondition.copy();
		}
		if (other.paidFeeCondition != null) {
			this.paidFeeCondition = other.paidFeeCondition.copy();
		}
		this.setOther(other);
	}

	private void setOther(HistoryQuery other){
		if(other.paidOnlineFeeCondition != null) {
			this.paidOnlineFeeCondition = other.paidOnlineFeeCondition.copy();
		}
		if(other.paidTotalCondition != null) {
			this.paidTotalCondition = other.paidTotalCondition.copy();
		}
		if(other.paidOfflineFeeCondition != null) {
			this.paidOfflineFeeCondition = other.paidOfflineFeeCondition.copy();
		}
		if(other.fixParkingIdCondition != null) {
			this.fixParkingIdCondition = other.fixParkingIdCondition.copy();
		}
		if(other.remainingDaysCondition != null) {
			this.remainingDaysCondition = other.remainingDaysCondition.copy();
		}
		if(other.couponIdCondition != null) {
			this.couponIdCondition = other.couponIdCondition.copy();
		}
		if(other.couponNameCondition != null) {
			this.couponNameCondition = other.couponNameCondition.copy();
		}
		if(other.couponDiscountFeeCondition != null) {
			this.couponDiscountFeeCondition = other.couponDiscountFeeCondition.copy();
		}
		if(other.statusCondition != null) {
			this.statusCondition = other.statusCondition.copy();
		}
		if(other.createdTimeCondition != null) {
			this.createdTimeCondition = other.createdTimeCondition.copy();
		}
		if(other.modifiedTimeCondition != null) {
			this.modifiedTimeCondition = other.modifiedTimeCondition.copy();
		}
		if(other.integralFeeCondition != null) {
			this.integralFeeCondition = other.integralFeeCondition.copy();
		}
		if(other.integralCondition != null) {
			this.integralCondition = other.integralCondition.copy();
		}
		if(other.payTypeCondition != null) {
			this.payTypeCondition = other.payTypeCondition.copy();
		}
	}

	@Override
	public QueryWrapper<HistoryEntity> toQueryWrapper() {
		QueryWrapper<HistoryEntity> wrapper = new QueryWrapper<>(this);
		if (thirdIdCondition != null) {
			thirdIdCondition.toWrapper(wrapper, COL_THIRD_ID);
		}
		if (busdIdCondition != null) {
			busdIdCondition.toWrapper(wrapper, COL_BUSD_ID);
		}
		if (memberIdCondition != null) {
			memberIdCondition.toWrapper(wrapper, COL_MEMBER_ID);
		}
		if (memberMobileCondition != null) {
			memberMobileCondition.toWrapper(wrapper, COL_MEMBER_MOBILE);
		}
		if (plateNumberCondition != null) {
			plateNumberCondition.toWrapper(wrapper, COL_PLATE_NUMBER);
		}
		if (parkingIdCondition != null) {
			parkingIdCondition.toWrapper(wrapper, COL_PARKING_ID);
		}
		if (parkingThirdNoCondition != null) {
			parkingThirdNoCondition.toWrapper(wrapper, COL_PARKING_THIRD_NO);
		}
		if (parkingNameCondition != null) {
			parkingNameCondition.toWrapper(wrapper, COL_PARKING_NAME);
		}
		if (userTypeCondition != null) {
			userTypeCondition.toWrapper(wrapper, COL_USER_TYPE);
		}
		if (entranceTimeCondition != null) {
			entranceTimeCondition.toWrapper(wrapper, COL_ENTRANCE_TIME);
		}
		if (exitTimeCondition != null) {
			exitTimeCondition.toWrapper(wrapper, COL_EXIT_TIME);
		}
		if (stayedTimeCondition != null) {
			stayedTimeCondition.toWrapper(wrapper, COL_STAYED_TIME);
		}
		if (parkingFeeCondition != null) {
			parkingFeeCondition.toWrapper(wrapper, COL_PARKING_FEE);
		}
		if (paidFeeCondition != null) {
			paidFeeCondition.toWrapper(wrapper, COL_PAID_FEE);
		}
		return getQueryWrapper(wrapper);
	}

	private QueryWrapper<HistoryEntity> getQueryWrapper(QueryWrapper<HistoryEntity> wrapper){
		if (paidOnlineFeeCondition != null) {
			paidOnlineFeeCondition.toWrapper(wrapper, COL_PAID_ONLINE_FEE);
		}
		if (paidTotalCondition != null) {
			paidTotalCondition.toWrapper(wrapper, COL_PAID_TOTAL);
		}
		if (paidOfflineFeeCondition != null) {
			paidOfflineFeeCondition.toWrapper(wrapper, COL_PAID_OFFLINE_FEE);
		}
		if (fixParkingIdCondition != null) {
			fixParkingIdCondition.toWrapper(wrapper, COL_FIX_PARKING_ID);
		}
		if (remainingDaysCondition != null) {
			remainingDaysCondition.toWrapper(wrapper, COL_REMAINING_DAYS);
		}
		if (couponIdCondition != null) {
			couponIdCondition.toWrapper(wrapper, COL_COUPON_ID);
		}
		if (couponNameCondition != null) {
			couponNameCondition.toWrapper(wrapper, COL_COUPON_NAME);
		}
		if (couponDiscountFeeCondition != null) {
			couponDiscountFeeCondition.toWrapper(wrapper, COL_COUPON_DISCOUNT_FEE);
		}
		if (statusCondition != null) {
			statusCondition.toWrapper(wrapper, COL_STATUS);
		}
		if (createdTimeCondition != null) {
			createdTimeCondition.toWrapper(wrapper, COL_CREATED_TIME);
		}
		if (modifiedTimeCondition != null) {
			modifiedTimeCondition.toWrapper(wrapper, COL_MODIFIED_TIME);
		}
		if (integralFeeCondition != null) {
			integralFeeCondition.toWrapper(wrapper, COL_INTEGRAL_FEE);
		}
		if (integralCondition != null) {
			integralCondition.toWrapper(wrapper, COL_INTEGRAL);
		}
		if (payTypeCondition != null) {
			payTypeCondition.toWrapper(wrapper, COL_PAY_TYPE);
		}
		return wrapper;
	}

	/**
	 * 构造并返回第三方ID查询条件
	 * 
	 * @return thirdIdCondition 第三方ID查询条件
	 */
	public Condition<String> thirdId() {
		this.thirdIdCondition = new Condition<>();
		return this.thirdIdCondition;
	}
	
	/**
	 * 获取第三方ID查询条件
	 * 
	 * @return thirdIdCondition 第三方ID查询条件
	 */
	public Condition<String> getThirdIdCondition() {
		return thirdIdCondition;
	}

	/**
	 * 设置第三方ID查询条件
	 * 
	 * @param thirdIdCondition 第三方ID查询条件
	 */
	public void setThirdIdCondition(Condition<String> thirdIdCondition) {
		this.thirdIdCondition = thirdIdCondition;
	}

	/**
	 * 构造并返回商圈ID查询条件
	 * 
	 * @return busdIdCondition 商圈ID查询条件
	 */
	public Condition<String> busdId() {
		this.busdIdCondition = new Condition<>();
		return this.busdIdCondition;
	}
	
	/**
	 * 获取商圈ID查询条件
	 * 
	 * @return busdIdCondition 商圈ID查询条件
	 */
	public Condition<String> getBusdIdCondition() {
		return busdIdCondition;
	}

	/**
	 * 设置商圈ID查询条件
	 * 
	 * @param busdIdCondition 商圈ID查询条件
	 */
	public void setBusdIdCondition(Condition<String> busdIdCondition) {
		this.busdIdCondition = busdIdCondition;
	}

	/**
	 * 构造并返回会员ID查询条件
	 * 
	 * @return memberIdCondition 会员ID查询条件
	 */
	public Condition<String> memberId() {
		this.memberIdCondition = new Condition<>();
		return this.memberIdCondition;
	}
	
	/**
	 * 获取会员ID查询条件
	 * 
	 * @return memberIdCondition 会员ID查询条件
	 */
	public Condition<String> getMemberIdCondition() {
		return memberIdCondition;
	}

	/**
	 * 设置会员ID查询条件
	 * 
	 * @param memberIdCondition 会员ID查询条件
	 */
	public void setMemberIdCondition(Condition<String> memberIdCondition) {
		this.memberIdCondition = memberIdCondition;
	}

	/**
	 * 构造并返回会员手机号查询条件
	 * 
	 * @return memberMobileCondition 会员手机号查询条件
	 */
	public Condition<String> memberMobile() {
		this.memberMobileCondition = new Condition<>();
		return this.memberMobileCondition;
	}
	
	/**
	 * 获取会员手机号查询条件
	 * 
	 * @return memberMobileCondition 会员手机号查询条件
	 */
	public Condition<String> getMemberMobileCondition() {
		return memberMobileCondition;
	}

	/**
	 * 设置会员手机号查询条件
	 * 
	 * @param memberMobileCondition 会员手机号查询条件
	 */
	public void setMemberMobileCondition(Condition<String> memberMobileCondition) {
		this.memberMobileCondition = memberMobileCondition;
	}

	/**
	 * 构造并返回查询条件
	 * 
	 * @return plateNumberCondition 查询条件
	 */
	public Condition<String> plateNumber() {
		this.plateNumberCondition = new Condition<>();
		return this.plateNumberCondition;
	}
	
	/**
	 * 获取查询条件
	 * 
	 * @return plateNumberCondition 查询条件
	 */
	public Condition<String> getPlateNumberCondition() {
		return plateNumberCondition;
	}

	/**
	 * 设置查询条件
	 * 
	 * @param plateNumberCondition 查询条件
	 */
	public void setPlateNumberCondition(Condition<String> plateNumberCondition) {
		this.plateNumberCondition = plateNumberCondition;
	}

	/**
	 * 构造并返回停车场ID查询条件
	 * 
	 * @return parkingIdCondition 停车场ID查询条件
	 */
	public Condition<String> parkingId() {
		this.parkingIdCondition = new Condition<>();
		return this.parkingIdCondition;
	}
	
	/**
	 * 获取停车场ID查询条件
	 * 
	 * @return parkingIdCondition 停车场ID查询条件
	 */
	public Condition<String> getParkingIdCondition() {
		return parkingIdCondition;
	}

	/**
	 * 设置停车场ID查询条件
	 * 
	 * @param parkingIdCondition 停车场ID查询条件
	 */
	public void setParkingIdCondition(Condition<String> parkingIdCondition) {
		this.parkingIdCondition = parkingIdCondition;
	}

	/**
	 * 构造并返回第三方系统停车场编号查询条件
	 * 
	 * @return parkingThirdNoCondition 第三方系统停车场编号查询条件
	 */
	public Condition<String> parkingThirdNo() {
		this.parkingThirdNoCondition = new Condition<>();
		return this.parkingThirdNoCondition;
	}
	
	/**
	 * 获取第三方系统停车场编号查询条件
	 * 
	 * @return parkingThirdNoCondition 第三方系统停车场编号查询条件
	 */
	public Condition<String> getParkingThirdNoCondition() {
		return parkingThirdNoCondition;
	}

	/**
	 * 设置第三方系统停车场编号查询条件
	 * 
	 * @param parkingThirdNoCondition 第三方系统停车场编号查询条件
	 */
	public void setParkingThirdNoCondition(Condition<String> parkingThirdNoCondition) {
		this.parkingThirdNoCondition = parkingThirdNoCondition;
	}

	/**
	 * 构造并返回停车场名称查询条件
	 * 
	 * @return parkingNameCondition 停车场名称查询条件
	 */
	public Condition<String> parkingName() {
		this.parkingNameCondition = new Condition<>();
		return this.parkingNameCondition;
	}
	
	/**
	 * 获取停车场名称查询条件
	 * 
	 * @return parkingNameCondition 停车场名称查询条件
	 */
	public Condition<String> getParkingNameCondition() {
		return parkingNameCondition;
	}

	/**
	 * 设置停车场名称查询条件
	 * 
	 * @param parkingNameCondition 停车场名称查询条件
	 */
	public void setParkingNameCondition(Condition<String> parkingNameCondition) {
		this.parkingNameCondition = parkingNameCondition;
	}

	/**
	 * 构造并返回用户类型 76:长租用户；77：临停用户查询条件
	 * 
	 * @return userTypeCondition 用户类型 76:长租用户；77：临停用户查询条件
	 */
	public Condition<String> userType() {
		this.userTypeCondition = new Condition<>();
		return this.userTypeCondition;
	}
	
	/**
	 * 获取用户类型 76:长租用户；77：临停用户查询条件
	 * 
	 * @return userTypeCondition 用户类型 76:长租用户；77：临停用户查询条件
	 */
	public Condition<String> getUserTypeCondition() {
		return userTypeCondition;
	}

	/**
	 * 设置用户类型 76:长租用户；77：临停用户查询条件
	 * 
	 * @param userTypeCondition 用户类型 76:长租用户；77：临停用户查询条件
	 */
	public void setUserTypeCondition(Condition<String> userTypeCondition) {
		this.userTypeCondition = userTypeCondition;
	}

	/**
	 * 构造并返回入场时间查询条件
	 * 
	 * @return entranceTimeCondition 入场时间查询条件
	 */
	public Condition<LocalDateTime> entranceTime() {
		this.entranceTimeCondition = new Condition<>();
		return this.entranceTimeCondition;
	}
	
	/**
	 * 获取入场时间查询条件
	 * 
	 * @return entranceTimeCondition 入场时间查询条件
	 */
	public Condition<LocalDateTime> getEntranceTimeCondition() {
		return entranceTimeCondition;
	}

	/**
	 * 设置入场时间查询条件
	 * 
	 * @param entranceTimeCondition 入场时间查询条件
	 */
	public void setEntranceTimeCondition(Condition<LocalDateTime> entranceTimeCondition) {
		this.entranceTimeCondition = entranceTimeCondition;
	}

	/**
	 * 构造并返回出场时间查询条件
	 * 
	 * @return exitTimeCondition 出场时间查询条件
	 */
	public Condition<LocalDateTime> exitTime() {
		this.exitTimeCondition = new Condition<>();
		return this.exitTimeCondition;
	}
	
	/**
	 * 获取出场时间查询条件
	 * 
	 * @return exitTimeCondition 出场时间查询条件
	 */
	public Condition<LocalDateTime> getExitTimeCondition() {
		return exitTimeCondition;
	}

	/**
	 * 设置出场时间查询条件
	 * 
	 * @param exitTimeCondition 出场时间查询条件
	 */
	public void setExitTimeCondition(Condition<LocalDateTime> exitTimeCondition) {
		this.exitTimeCondition = exitTimeCondition;
	}

	/**
	 * 构造并返回停留时间(以秒为单位计算)查询条件
	 * 
	 * @return stayedTimeCondition 停留时间(以秒为单位计算)查询条件
	 */
	public Condition<Long> stayedTime() {
		this.stayedTimeCondition = new Condition<>();
		return this.stayedTimeCondition;
	}
	
	/**
	 * 获取停留时间(以秒为单位计算)查询条件
	 * 
	 * @return stayedTimeCondition 停留时间(以秒为单位计算)查询条件
	 */
	public Condition<Long> getStayedTimeCondition() {
		return stayedTimeCondition;
	}

	/**
	 * 设置停留时间(以秒为单位计算)查询条件
	 * 
	 * @param stayedTimeCondition 停留时间(以秒为单位计算)查询条件
	 */
	public void setStayedTimeCondition(Condition<Long> stayedTimeCondition) {
		this.stayedTimeCondition = stayedTimeCondition;
	}

	/**
	 * 构造并返回总停车费查询条件
	 * 
	 * @return parkingFeeCondition 总停车费查询条件
	 */
	public Condition<BigDecimal> parkingFee() {
		this.parkingFeeCondition = new Condition<>();
		return this.parkingFeeCondition;
	}
	
	/**
	 * 获取总停车费查询条件
	 * 
	 * @return parkingFeeCondition 总停车费查询条件
	 */
	public Condition<BigDecimal> getParkingFeeCondition() {
		return parkingFeeCondition;
	}

	/**
	 * 设置总停车费查询条件
	 * 
	 * @param parkingFeeCondition 总停车费查询条件
	 */
	public void setParkingFeeCondition(Condition<BigDecimal> parkingFeeCondition) {
		this.parkingFeeCondition = parkingFeeCondition;
	}

	/**
	 * 构造并返回已缴停车费查询条件
	 * 
	 * @return paidFeeCondition 已缴停车费查询条件
	 */
	public Condition<BigDecimal> paidFee() {
		this.paidFeeCondition = new Condition<>();
		return this.paidFeeCondition;
	}
	
	/**
	 * 获取已缴停车费查询条件
	 * 
	 * @return paidFeeCondition 已缴停车费查询条件
	 */
	public Condition<BigDecimal> getPaidFeeCondition() {
		return paidFeeCondition;
	}

	/**
	 * 设置已缴停车费查询条件
	 * 
	 * @param paidFeeCondition 已缴停车费查询条件
	 */
	public void setPaidFeeCondition(Condition<BigDecimal> paidFeeCondition) {
		this.paidFeeCondition = paidFeeCondition;
	}

	/**
	 * 构造并返回线上已缴费用查询条件
	 * 
	 * @return paidOnlineFeeCondition 线上已缴费用查询条件
	 */
	public Condition<BigDecimal> paidOnlineFee() {
		this.paidOnlineFeeCondition = new Condition<>();
		return this.paidOnlineFeeCondition;
	}
	
	/**
	 * 获取线上已缴费用查询条件
	 * 
	 * @return paidOnlineFeeCondition 线上已缴费用查询条件
	 */
	public Condition<BigDecimal> getPaidOnlineFeeCondition() {
		return paidOnlineFeeCondition;
	}

	/**
	 * 设置线上已缴费用查询条件
	 * 
	 * @param paidOnlineFeeCondition 线上已缴费用查询条件
	 */
	public void setPaidOnlineFeeCondition(Condition<BigDecimal> paidOnlineFeeCondition) {
		this.paidOnlineFeeCondition = paidOnlineFeeCondition;
	}

	/**
	 * 构造并返回线上缴费次数查询条件
	 * 
	 * @return paidTotalCondition 线上缴费次数查询条件
	 */
	public Condition<Integer> paidTotal() {
		this.paidTotalCondition = new Condition<>();
		return this.paidTotalCondition;
	}
	
	/**
	 * 获取线上缴费次数查询条件
	 * 
	 * @return paidTotalCondition 线上缴费次数查询条件
	 */
	public Condition<Integer> getPaidTotalCondition() {
		return paidTotalCondition;
	}

	/**
	 * 设置线上缴费次数查询条件
	 * 
	 * @param paidTotalCondition 线上缴费次数查询条件
	 */
	public void setPaidTotalCondition(Condition<Integer> paidTotalCondition) {
		this.paidTotalCondition = paidTotalCondition;
	}

	/**
	 * 构造并返回线下缴费费用查询条件
	 * 
	 * @return paidOfflineFeeCondition 线下缴费费用查询条件
	 */
	public Condition<BigDecimal> paidOfflineFee() {
		this.paidOfflineFeeCondition = new Condition<>();
		return this.paidOfflineFeeCondition;
	}
	
	/**
	 * 获取线下缴费费用查询条件
	 * 
	 * @return paidOfflineFeeCondition 线下缴费费用查询条件
	 */
	public Condition<BigDecimal> getPaidOfflineFeeCondition() {
		return paidOfflineFeeCondition;
	}

	/**
	 * 设置线下缴费费用查询条件
	 * 
	 * @param paidOfflineFeeCondition 线下缴费费用查询条件
	 */
	public void setPaidOfflineFeeCondition(Condition<BigDecimal> paidOfflineFeeCondition) {
		this.paidOfflineFeeCondition = paidOfflineFeeCondition;
	}

	/**
	 * 构造并返回长租车位ID查询条件
	 * 
	 * @return fixParkingIdCondition 长租车位ID查询条件
	 */
	public Condition<String> fixParkingId() {
		this.fixParkingIdCondition = new Condition<>();
		return this.fixParkingIdCondition;
	}
	
	/**
	 * 获取长租车位ID查询条件
	 * 
	 * @return fixParkingIdCondition 长租车位ID查询条件
	 */
	public Condition<String> getFixParkingIdCondition() {
		return fixParkingIdCondition;
	}

	/**
	 * 设置长租车位ID查询条件
	 * 
	 * @param fixParkingIdCondition 长租车位ID查询条件
	 */
	public void setFixParkingIdCondition(Condition<String> fixParkingIdCondition) {
		this.fixParkingIdCondition = fixParkingIdCondition;
	}

	/**
	 * 构造并返回长租剩余天数 如果是临停用户此字段为空查询条件
	 * 
	 * @return remainingDaysCondition 长租剩余天数 如果是临停用户此字段为空查询条件
	 */
	public Condition<String> remainingDays() {
		this.remainingDaysCondition = new Condition<>();
		return this.remainingDaysCondition;
	}
	
	/**
	 * 获取长租剩余天数 如果是临停用户此字段为空查询条件
	 * 
	 * @return remainingDaysCondition 长租剩余天数 如果是临停用户此字段为空查询条件
	 */
	public Condition<String> getRemainingDaysCondition() {
		return remainingDaysCondition;
	}

	/**
	 * 设置长租剩余天数 如果是临停用户此字段为空查询条件
	 * 
	 * @param remainingDaysCondition 长租剩余天数 如果是临停用户此字段为空查询条件
	 */
	public void setRemainingDaysCondition(Condition<String> remainingDaysCondition) {
		this.remainingDaysCondition = remainingDaysCondition;
	}

	/**
	 * 构造并返回停车券ID查询条件
	 * 
	 * @return couponIdCondition 停车券ID查询条件
	 */
	public Condition<String> couponId() {
		this.couponIdCondition = new Condition<>();
		return this.couponIdCondition;
	}
	
	/**
	 * 获取停车券ID查询条件
	 * 
	 * @return couponIdCondition 停车券ID查询条件
	 */
	public Condition<String> getCouponIdCondition() {
		return couponIdCondition;
	}

	/**
	 * 设置停车券ID查询条件
	 * 
	 * @param couponIdCondition 停车券ID查询条件
	 */
	public void setCouponIdCondition(Condition<String> couponIdCondition) {
		this.couponIdCondition = couponIdCondition;
	}

	/**
	 * 构造并返回停车券名字查询条件
	 * 
	 * @return couponNameCondition 停车券名字查询条件
	 */
	public Condition<String> couponName() {
		this.couponNameCondition = new Condition<>();
		return this.couponNameCondition;
	}
	
	/**
	 * 获取停车券名字查询条件
	 * 
	 * @return couponNameCondition 停车券名字查询条件
	 */
	public Condition<String> getCouponNameCondition() {
		return couponNameCondition;
	}

	/**
	 * 设置停车券名字查询条件
	 * 
	 * @param couponNameCondition 停车券名字查询条件
	 */
	public void setCouponNameCondition(Condition<String> couponNameCondition) {
		this.couponNameCondition = couponNameCondition;
	}

	/**
	 * 构造并返回停车券抵扣金额查询条件
	 * 
	 * @return couponDiscountFeeCondition 停车券抵扣金额查询条件
	 */
	public Condition<BigDecimal> couponDiscountFee() {
		this.couponDiscountFeeCondition = new Condition<>();
		return this.couponDiscountFeeCondition;
	}
	
	/**
	 * 获取停车券抵扣金额查询条件
	 * 
	 * @return couponDiscountFeeCondition 停车券抵扣金额查询条件
	 */
	public Condition<BigDecimal> getCouponDiscountFeeCondition() {
		return couponDiscountFeeCondition;
	}

	/**
	 * 设置停车券抵扣金额查询条件
	 * 
	 * @param couponDiscountFeeCondition 停车券抵扣金额查询条件
	 */
	public void setCouponDiscountFeeCondition(Condition<BigDecimal> couponDiscountFeeCondition) {
		this.couponDiscountFeeCondition = couponDiscountFeeCondition;
	}

	/**
	 * 构造并返回[枚举]车牌状态：0-已出场-OUTSIDE、1-已入场-INSIDE、2-待离场-WAITOUT查询条件
	 * 
	 * @return statusCondition [枚举]车牌状态：0-已出场-OUTSIDE、1-已入场-INSIDE、2-待离场-WAITOUT查询条件
	 */
	public Condition<HistoryStatus> status() {
		this.statusCondition = new Condition<>();
		return this.statusCondition;
	}
	
	/**
	 * 获取[枚举]车牌状态：0-已出场-OUTSIDE、1-已入场-INSIDE、2-待离场-WAITOUT查询条件
	 * 
	 * @return statusCondition [枚举]车牌状态：0-已出场-OUTSIDE、1-已入场-INSIDE、2-待离场-WAITOUT查询条件
	 */
	public Condition<HistoryStatus> getStatusCondition() {
		return statusCondition;
	}

	/**
	 * 设置[枚举]车牌状态：0-已出场-OUTSIDE、1-已入场-INSIDE、2-待离场-WAITOUT查询条件
	 * 
	 * @param statusCondition [枚举]车牌状态：0-已出场-OUTSIDE、1-已入场-INSIDE、2-待离场-WAITOUT查询条件
	 */
	public void setStatusCondition(Condition<HistoryStatus> statusCondition) {
		this.statusCondition = statusCondition;
	}

	/**
	 * 构造并返回创建时间查询条件
	 * 
	 * @return createdTimeCondition 创建时间查询条件
	 */
	public Condition<LocalDateTime> createdTime() {
		this.createdTimeCondition = new Condition<>();
		return this.createdTimeCondition;
	}
	
	/**
	 * 获取创建时间查询条件
	 * 
	 * @return createdTimeCondition 创建时间查询条件
	 */
	public Condition<LocalDateTime> getCreatedTimeCondition() {
		return createdTimeCondition;
	}

	/**
	 * 设置创建时间查询条件
	 * 
	 * @param createdTimeCondition 创建时间查询条件
	 */
	public void setCreatedTimeCondition(Condition<LocalDateTime> createdTimeCondition) {
		this.createdTimeCondition = createdTimeCondition;
	}

	/**
	 * 构造并返回更新时间查询条件
	 * 
	 * @return modifiedTimeCondition 更新时间查询条件
	 */
	public Condition<LocalDateTime> modifiedTime() {
		this.modifiedTimeCondition = new Condition<>();
		return this.modifiedTimeCondition;
	}
	
	/**
	 * 获取更新时间查询条件
	 * 
	 * @return modifiedTimeCondition 更新时间查询条件
	 */
	public Condition<LocalDateTime> getModifiedTimeCondition() {
		return modifiedTimeCondition;
	}

	/**
	 * 设置更新时间查询条件
	 * 
	 * @param modifiedTimeCondition 更新时间查询条件
	 */
	public void setModifiedTimeCondition(Condition<LocalDateTime> modifiedTimeCondition) {
		this.modifiedTimeCondition = modifiedTimeCondition;
	}

	/**
	 * 构造并返回积分抵扣金额查询条件
	 * 
	 * @return integralFeeCondition 积分抵扣金额查询条件
	 */
	public Condition<BigDecimal> integralFee() {
		this.integralFeeCondition = new Condition<>();
		return this.integralFeeCondition;
	}
	
	/**
	 * 获取积分抵扣金额查询条件
	 * 
	 * @return integralFeeCondition 积分抵扣金额查询条件
	 */
	public Condition<BigDecimal> getIntegralFeeCondition() {
		return integralFeeCondition;
	}

	/**
	 * 设置积分抵扣金额查询条件
	 * 
	 * @param integralFeeCondition 积分抵扣金额查询条件
	 */
	public void setIntegralFeeCondition(Condition<BigDecimal> integralFeeCondition) {
		this.integralFeeCondition = integralFeeCondition;
	}

	/**
	 * 构造并返回抵扣积分查询条件
	 * 
	 * @return integralCondition 抵扣积分查询条件
	 */
	public Condition<Integer> integral() {
		this.integralCondition = new Condition<>();
		return this.integralCondition;
	}
	
	/**
	 * 获取抵扣积分查询条件
	 * 
	 * @return integralCondition 抵扣积分查询条件
	 */
	public Condition<Integer> getIntegralCondition() {
		return integralCondition;
	}

	/**
	 * 设置抵扣积分查询条件
	 * 
	 * @param integralCondition 抵扣积分查询条件
	 */
	public void setIntegralCondition(Condition<Integer> integralCondition) {
		this.integralCondition = integralCondition;
	}

	/**
	 * 构造并返回[枚举]支付类型：1-平台-PLATFORM、2-支付宝-ALIPAY、3-微信-WECHAT查询条件
	 * 
	 * @return payTypeCondition [枚举]支付类型：1-平台-PLATFORM、2-支付宝-ALIPAY、3-微信-WECHAT查询条件
	 */
	public Condition<HistoryPayType> payType() {
		this.payTypeCondition = new Condition<>();
		return this.payTypeCondition;
	}
	
	/**
	 * 获取[枚举]支付类型：1-平台-PLATFORM、2-支付宝-ALIPAY、3-微信-WECHAT查询条件
	 * 
	 * @return payTypeCondition [枚举]支付类型：1-平台-PLATFORM、2-支付宝-ALIPAY、3-微信-WECHAT查询条件
	 */
	public Condition<HistoryPayType> getPayTypeCondition() {
		return payTypeCondition;
	}

	/**
	 * 设置[枚举]支付类型：1-平台-PLATFORM、2-支付宝-ALIPAY、3-微信-WECHAT查询条件
	 * 
	 * @param payTypeCondition [枚举]支付类型：1-平台-PLATFORM、2-支付宝-ALIPAY、3-微信-WECHAT查询条件
	 */
	public void setPayTypeCondition(Condition<HistoryPayType> payTypeCondition) {
		this.payTypeCondition = payTypeCondition;
	}

}
